A Unix r”vid t”rt‚nete 2.0- s, jav¡tott verzi¢ ;-) A sikert”rt‚net paradox m¢don egy kudarccal kezd“dik. Az MIT, a Bell laborat¢rium ‚s a General Electric a hatvanas ‚vek v‚g‚n belekezdett egy nagyszab s£ kutat si programba, amelynek sor n egy t”bbfelhaszn l¢s, t”bbfeladatos oper ci¢s rendszert szerettek volna ¡rni. A rendszer a kereszts‚gben a MULTICS nevet kapta (MULTiplexed Information and Computing Service), ‚s meglehet“sen komoly c‚lok megval¢s¡t s t t–zt‚k ki el‚. A fejleszt‚s PL/I nyelven folyt, annak ellen‚re, hogy abban az id“ben m‚g egyetlen m–k”d“k‚pes PL/I ford¡t¢ sem l‚tezett. Az ehhez hasonl¢ neh‚zs‚gek v‚gl a program felad s ra k‚nyszer¡tett‚k a kutat¢kat. A MULTICS teh t besokallt, ami egyebek mellett azzal j rt, hogy a program egyik r‚sztvev“je k‚nytelen volt valami egy‚b ‚rdekes elfoglalts got tal lni mag nak. Ken Thompsonr¢l van sz¢, aki ekkor saj t szak ll ra meg¡rta a MULTICS egyszer–s¡tett v ltozat t egy haszn laton k¡vl l‚v“ PDP-7 sz m¡t¢g‚pen. Az £j oper ci¢s rendszer kiher‚lt v ltozata volt a MULTICSnak, erre utal szarkasztikus elnevez‚se is, amelyet Brian Kernighan ragasztott r : eunuch multics, r”viden UNICS (Uniplexed Information and Computing Service). B rmennyire f”ldszintes is volt Ken Thompson oper ci¢s rendszere, a MULTICS-al szemben volt egy behozhatatlan el“nye: m–k”d”tt. 1969-et ¡rtak ekkor. Ez a nem elhanyagolhat¢ tulajdons g k‚sztette arra Dennis Ritchiet hogy eg‚sz oszt ly val egytt csatlakozzon a UNIX (k”zben megv ltoztatt k a helyes¡r st) fejleszt‚s‚hez. Az ¡gy meger“s¡tett csapat nekil tott, hogy elk‚sz¡tse az oper ci¢s rendszer PDP-11 g‚pen fut¢ v ltozat t. Az “s-unix assemly nyelven k‚szlt, ¡gy £jra kellett ¡rni az eg‚szet, valah nyszor egy £j, m s t¡pus£ g‚pre szerett‚k volna adopt lni. Mivel oper ci¢s rendszert assembly nyelven ¡rni egy ltal n nem sz¢rakoztat¢ dolog, m‚g Ken Thompson sz m ra sem, ez‚rt kital lt egy B-nek nevezett nyelvet, azzal a sz nd‚kkal, hogy az oper ci¢s rendszert ebben ¡rja meg. (A B nyelv a BPCL-b“l sz rmazik, ami pedig a CPL-b“l. A h rom programoz si nyelvben az a k”z”s, hogy igaz b¢l soha egyikk sem m–k”d”tt.) Itt l‚pett k”zbe Dennis Ritchie, aki £jratervezte a B nyelvet, bevezette a strukt£r kat, ‚s egy tuti ford¡t¢t is ¡rt hozz  a PDP-11 g‚pre. Ken Thompsonnal k”z”sen £jra¡rt k a Unixot ezen t”k‚letes¡tett nyelven. (A nyelvnek a C nevet adt k, ‚s az¢ta is sok sz zezer programoz¢ besz‚li ezt a nyelvet, szerte a vil gon.) A Unixr¢l 1974-ben jelent meg az els“ r‚szletes publik ci¢. Itt ‚rdemes egy pillanatra meg llni ‚s megvizsg lni azokat a k”rlm‚nyeket, amelyek v‚gl nem v rt m¢don form lt k a t”rt‚nelmet. Az egyik ilyen k”rlm‚ny az volt, hogy a Bell laborat¢rium anyav llalata, az AT&T akkoriban ki volt tiltva a sz m¡t¢g‚pek piac r¢l, ¡gy a Unixot nem  rulhatta p‚nz‚rt. Semmi sem indokolta, hogy az oper ci¢s rendszert -forr sk¢dj val egytt- ne adj k oda b rmelyik egyetemnek. gy is tettek. A m sik k”rlm‚ny, hogy a Unix PDP-11-en futott. Az egyetemeken akkoriban szinte nem is volt m s g‚p, mint PDP-11. s ezen a ponton a DEC c‚g is alaposan beseg¡tett a Unix vil gsiker‚be: a PDP-11 oper ci¢s rendszere t”rt‚netesen olyan borzalmas volt, hogy a felhaszn l¢k ‚jjelente Digit lis sz”rnyetegekkel  lmodtak. Ezek ut n k”nny– kital lni, hogy mi t”rt‚nt: egyetemek sz zain kezdt‚k haszn lni a Unixot, a forr sk¢d birtok ban pedig megindult a v‚get nem ‚r“ buher l s. K”zben a Bell laborat¢rium munkat rsai sem ltek karbatett k‚zzel: a PDP-11 ut n k”vetkez“ c‚lpontjuk egy Interdata 8/32 sz m¡t¢g‚p Unixos¡t sa volt. Mivel az oper ci¢s rendszer C-ben volt ¡rva, ez mind”ssze annyit jelentett, hogy az Interdata g‚pen egy C ford¡t¢val leford¡tj k a PDP-11-en kifejlesztett forr sk¢dot. Ez egyszer– feladat, felt‚ve, hogy az Interdata g‚pen van C ford¡t¢. Nem volt, ¡gy el“bb ¡rni kellett egyet. Mivel minden, m s g‚pre val¢ adopt l s a C ford¡t¢ adopt l s val kezd“dik, ez‚rt Steve Jhonson ¡rt egy "portable C compiler"-t, ami viszonylag kev‚s munk val b rmilyen g‚pre  t¡rhat¢. (Ezut n m‚g sok ig ez k‚pezte minden £j C ford¡t¢ alapj t.) Az Interdata Unixos¡t sa sor n k‚t komoly neh‚zs‚g merlt fel. Az els“ az, hogy a PDP-11 Unixban a fejleszt“k n‚h ny dolgot term‚szetesnek vettek (p‚ld ul azt, hogy az eg‚sz sz mok ‚s mutat¢k 16 bitesek, a k”zponti egys‚gnek pedig h rom regisztere van.) Ezek k”zl az Interdata g‚pen egyik sem teljeslt, ¡gy el‚g sok munk ba kerlt, mire a forr sk¢dot e felt‚telek kezel‚s‚re is felk‚sz¡tett‚k. A m sik neh‚zs‚g a f”ldrajzi t vols gb¢l ad¢dott: a PDP-11 a negyedik emeleten volt, az Interdata pedig a f”ldszinten. A munka £gy zajlott, hogy a negyediken leford¡tott k a k‚szl“ oper ci¢s rendszer k¢dj t, majd a m gnesszalgokkal les‚t ltak a f”ldszintre hogy megn‚zz‚k, vajon m–k”dik-e? Val¢sz¡n–leg ekkor kezdtek el komolyan foglalkozni a gondolattal, hogy a sz m¡t¢g‚peket h l¢zatba kellene k”tni. A k”vetkez“ m‚rf”ldk”vet az amerikai korm ny rakta le azzal, hogy r‚szekre bontotta az AT&T v llalatot, az ut¢dok sz m ra pedig megnyitotta az utat a sz m¡t stechnikai ipar fel‚. Hamarosan megjelent az els“ kereskedelmi Unix v ltozat, System III n‚ven. Nem igaz n volt sikeres, ¡gy egy ‚vvel k‚s“bb megjelent a System V nev– jav¡tott v ltozat. (Hogy hov  lett a IV-es v ltozat, az egyike a sz m¡t stechnika m ig megoldatlan rejt‚lyeinek.) A System V t”bb kiad st is meg‚rt, ezek Release 2, 3 ‚s 4 n‚ven ismertek. A sz mtalan Unix-buher l¢ egyetem k”zl kiemelkedik a University of California at Berkeley. ™k sz mos ponton jav¡tottak az AT&T-t“l valaha ingyen kapott Unixon, gyorsabb f jlrendszert ¡rtak, elk‚sz¡tett‚k a VAX-on fut¢ v ltozatot, be‚p¡tett‚k a h l¢zatkezel‚st (ami TCP/IP n‚ven legal bb olyan erterjedt a h l¢zati protokollok k”z”tt, mint a C a programoz si nyelvek ter‚n), valamit sz mos seg‚dprogramot (csh, vi, Lisp ford¡t¢, Pascal ford¡t¢, stb.) Az egyetem kereskedelmi v ltozat£ szoftvercsomagg  form lta az  ltaluk fejlesztett Unix v ltozatot ‚s BSD (Berkeley Software Distribution) n‚ven terjeszteni kezdte. (™k mostan ban a 4.3-as verzi¢n l tartanak.) Amint l that¢, a nyolcvanas ‚vek v‚g‚re a Unix-vil got k‚t kl”nb”z“, egym st¢l sok dologban elt‚r“ Unix uralta. Ez els“sorban azzal a szomor£ k”vetkezm‚nnyel j rt, hogy a System V Unix alatt ¡rt C programra a BSD-s rendszerek ford¡t¢i fityiszt mutatnak, ‚s ford¡tva. A C nyelv ford¡t svez‚rl“ direkt¡v ival (#ifdef , #ifndef, #endif) ugyan £rr  lehet lenni a helyezeten, de ez egy£ttal azt jelenti, hogy a C programot minden g‚phez  t kell egy kicsit alak¡tani, "portolni" kell. Nagyj b¢l minden nagyobb sz m¡t¢g‚p gy rt¢ a k‚t elterjedt rendszer (System V, BSD) valamelyik‚n alapulva k‚sz¡tette el saj t Unix v ltozat t. Mivel az inkompatibilit s senkinek nem tesz j¢t, ez‚rt az AT&T kibocs tott egy szabv ny aj nl st, az SVID-t (System V Interface Definition), amiben azt ¡rja le, hogy szerintk mit kell tartalmaznia az egys‚ges Unixnak, ami lehet“leg a System V legyen. A Berkeley Egyetem, ‚s a BSD-nek elk”telezett Unix gy rt¢k term‚szetesen a figyelmen k¡vl hagyt k az SVID-t szabv nyt, s ezzel kezdet‚t vette a System V kontra BSD "Unix h bor£ ". Az els“ nem csak kibocs t¢ja  ltal elfogadott szabv nyt az IEEE hozta l‚tre, Portable Operaring System (r”vid¡tve: POS) n‚ven. Hogy Unixosabban hangozz‚k, a r”vid¡t‚shez hozz biggyesztett‚k az IX bet–ket: ¡gy lett a dologb¢l POSIX. E szabv ny azt ¡rja le, hogy egy "hordozhat¢" oper ci¢s rendszernek hogyan is kell kin‚znie. Minden nagy gy rt¢ elismeri a POSIX jelent“s‚g‚t, oper ci¢s rendszereiben t mogatja is azt. Mindazon ltal ez nem akad lyozza meg “ket abban, hogy olyan kieg‚sz¡t‚seket, nem szabv nyos interf‚szeket ‚s egy‚b szolg ltat sokat ‚p¡tsenek be a term‚kkbe, amit“l a kl”nb”z“ rendszerek tov bbra is inkompatibilisek lesznek. A riv lisok k‚t szervezetbe t”m”rltek, a l”v‚sz rkok egyik oldal n a DEC  ltal vezetett Open Systems Foundationt (OSF) tal ljuk, velk szemben pedig az AT&T alap¡totta Unix International (UI) sz”vets‚get. Vizsg ljuk meg egy kicsit k”zelebbr“l e nagy h bor£skod s ok t! Az “sid“kben, mikor n‚h ny sz m¡t stechnikai mamutc‚g uralta a piacot, a sz m¡t¢g‚pek "”nmagukkal" voltak kompatibilisek, azaz ha elromlott egy alkatr‚sz, vagy a rendszert b“v¡teni akart k, a berendez‚seket kiz r¢lag az eredeti gy rt¢t¢l lehetett beszerezni. A mamutok alaposan vissza is ‚ltek azzal, hogy a v s rl¢ m‚g a port”rl“ rongyot is k‚nytelen t–lk v s rolni, egy-egy alkatr‚sz‚rt szemrebben‚s n‚lkl elk‚rt‚k a piaci  r h romszoros t. (N‚h ny c‚g ma is folytatja ezt a gyakorlatot.) A v‚dekez‚st az jelenten‚, ha a kl”nb”z“ gy rt¢k sz m¡t¢g‚pei hajland¢k lenn‚nek egyttm–k”dni, azaz elt‚r“ t¡pus£ g‚pekb“l is lehetne rendszert ‚p¡teni. Ez egyr‚szt nagyobb szabads got adna a felhaszn l¢knak a v s rl sn l, m sr‚szt es‚lyt biztos¡tana a gy rt¢knak, hogy berendez‚seiket min‚l sz‚lesebb k”rben v s rolj k. Egy ilyen nyitott rendszerbe ut¢lag b rmelyik c‚g szoftver‚t vagy sz m¡t¢g‚p‚t be lehet illeszteni: ezt az  lmot h¡vj k "ny¡lt rendszereknek" (Open Systems). Nyilv nval¢, hogy a ny¡lt rendszerek kulcsfontoss g£ k‚rd‚se a minden gy rt¢  ltal elfogadott (‚s be is tartott) szabv ny. Ha ezt a szabv nyt egy gy rt¢ bocs tan  ki, akkor ez ltal el“nyh”z jutna a piacon. A vall sh bor£ l‚nyeg‚ben az‚rt t”rt ki, hogy eld”nts‚k, kinek a rendszer‚t fogadj k el szabv nyk‚nt. Mivel egyik f‚lnek sem sikerlt fell kerekednie, a kilencvenes ‚vek elej‚n l‚trehoztak egy gy rt¢fggetlen szervezetet a ny¡lt rendszerek szabv nyainak elk‚sz¡t‚s‚re ‚s a "szabv nynak megfelel" min“s¡t‚sek kiad s ra. Ez a szervezet az X/Open, az  ltaluk k‚sz¡tett oper ci¢s rendszer szabv ny neve pedig Core OS API, m s n‚ven Common API. A szabv nyt a benne le¡rt specifik ci¢k alapj n h¡vj k Spec 1170-nek is, s“t egy tov bbi neve is van: UNIX 95. (A Microsoft m‚g nem ind¡tott pl gium pert :-) Ha egy oper ci¢s rendszer  tmegy az X/Open min“s¡t“ tesztjein, megkapja a UNIX 95 min“s¡t‚st. A "levizsg ztatott" oper ci¢s rendszerre ¡rt programok forr sk¢dja hordozhat¢, azaz buher l s n‚lkl le lehet ford¡tani egy m sik gy rt¢ ugyancsak UNIX 95 kompatibilis oper ci¢s rendszer‚n. N‚zzk, mit l t a UNIX 95-b“l az egyszer– felhaszn l¢! Hmmm....egy ugyanolyan mez¡t bas parancssort, mint amilyet h£sz ‚vvel ezel“tt. A szabv nyban ugyanis nem szerepel a grafikus felhaszn l¢i fellet, amelynek egys‚ges¡t‚s‚‚rt ugyancsak  d z kzdelem folyik. K‚szlt ugyan egy CDE (Common Desktop Environment) nev– szabv ny, amit XCDE n‚ven az X/Open is  tvett, de a gy rt¢k nem sietnek saj t grafikus felletket e szabv nyhoz igaz¡tani. Ennek persze nem az az oka, hogy az igazi UNIX buher torok csak a parancssorban ‚rzik igaz n j¢l magukat, hanem az, hogy a UNIX alatt fut¢ alkalmaz sok (p‚ld ul a nagy adatb zis-kezel“ rendszerek) karakteres alapon m–k”dnek. gy azt n j¢val kevesebb gy rt¢t ‚rint a grafikus felhaszn l¢i fellet gye. Pedig nekik is lenne mit“l f‚lnik, mert a PC vil gban grafikus szabv nyt teremt“ Microsoft a kertek alatt m r jav ban nyomul a ny¡lt rendszerek fel‚. Charles Simonyi (na tess‚k, megint egy magyar!), a Microsoft m sodik embere m r a kilencvenes ‚vek elej‚n azt nyilatkozta a Sz m¡t stechnika c¡m– £js g riporter‚nek, hogy: "Ha valaki azt mondja, hogy UNIX, £gy gondolom, nem “r–lt. Lehet, hogy m‚g nem hallott az NT-r“l." A redmonti programoz¢k sz‚p csendben ”sszehoztak kliens-szerver alap£, mikrokerneles, t”bb f‚le processzoron is fut¢ oper ci¢s rendszert, a Windows New Technology-t. Az NT legels“ v ltozat nak grafikus fellete r n‚z‚sre ugyanolyan volt, mint a j¢ ”reg Windows 3.1-‚; m‚gpedig az‚rt, hogy a felhaszn l¢k sz m ra ismer“s legyen. A felhaszn l¢ pedig r n‚zett a Windows NT-re ‚s ¡gy sz¢lt mag ban: "J‚‚‚, ez ugyan£gy n‚z ki, mint a Windows 3.1! Akkor biztosan ez is ugyanolyan gagyi!" Hossz£ id“nek kellett eltelnie, mire a felhaszn l¢k feleszm‚ltek, hogy kiv‚telesen nem egy j¢l rekl mozott videoj t‚kkal, hanem egy v‚resen komoly oper ci¢s rendszerrel  llanak szemben. Mi  ll az NT h tter‚ben? Mikor Bill Gates elhat rozta, hogy c‚lba veszi a kiszolg l¢ g‚pek piac t, azzal kezdte a munk t, hogy keresett egy embert, aki tud oper ci¢s rendszert ¡rni. (Ez az, amit az MS-DOS megalkot sakor sajn latos m¢don elmulasztott.) Az illet“ pedig nem m s, mint a VMS oper ci¢s rendszer apuk ja - a Windows NT teh t t”bb szempontb¢l is a VMS ut¢dj nak tekinthet“. (Egy ‚rdekes sz¢j t‚k is al t masztja ezt: ha a VMS bet–i helyett sorban az  b‚c‚ k”vetkez“ bet–it vesszk, a WNT sz¢t kapjuk eredm‚nyl.) Mit hoz a j”v“? Nem k‚ts‚ges, hogy £jabb h bor£t. A UNIX vil gnak pedig alighanem alaposan ”ssze kell szednie mag t, ha nem akar ‚rz‚keny vesztes‚geket szenvedni a Microsoft elleni harcban... Megjegyz‚sek Igazs gtalanok lenn‚nk ha elhallgatn nk, hogy p r ‚vvel k‚s“bb a MULTICS m‚gis elk‚szlt, a mai napig is kaphat¢, a Unix siker‚t azonnban soha nem k”zel¡tette meg.